package com.shujia

// 伴生类
class Demo09ScalaClassAccessControl(clazz:String) {
  val id: String = "001"
  var name: String = "zs"
  // 由private修饰的属性只能在类的内部使用 或者是 同名的 object方法中 （伴生对象中）使用
  private val age: Int = 20
  val _clazz:String = clazz

  def printAge():Unit = {
    println(this.age)
  }
}
// 伴生对象
object Demo09ScalaClassAccessControl {
  def main(args: Array[String]): Unit = {
    val c1: Demo09ScalaClassAccessControl = new Demo09ScalaClassAccessControl("文科一班")

    println(c1.id)
    println(c1.name)
    println(c1.age)

  }

  // apply方法中会 创建伴生类的对象 并且返回该对象
  def apply(clazz:String): Demo09ScalaClassAccessControl = new Demo09ScalaClassAccessControl(clazz)

}

class A{

}
class B{

}